<?php
class Amostra extends Zend_Db_Table
{
    protected $_name = 'amostra';
	
    public function lista(array $request)
    {
	$dados = array();
		
	$select = $this->select()
                       ->from($this, 'COUNT(*) AS  qtd');
					   
	$result = $this->fetchRow($select);
		
	if($result->qtd > 0){
            $total_pages = ceil($result->qtd / $request['rows']);
	}else{
            $total_pages = 0;
	}
		
	if($request['page'] == 1){
            $start = 0;
	}else{
            $start = ($request['rows'] * $request['page']) - $request['rows'];
	}

	$dados['total']	= $total_pages;
	$dados['page']	= $request['page'];
	$dados['records'] = $result->qtd;

        $select = "SELECT DISTINCT a.idAmostra AS amostra, a.inicial, c.nomeCurto AS cliente";
 	$select .= " FROM amostra a ";
        $select .= " INNER JOIN cliente c ON ( a.idCliente = c.idCliente )";
        $select .= " WHERE NOT EXISTS (SELECT * FROM rotina_amostra ra";
        $select .= " INNER JOIN rotina r ON (r.idRotina = ra.idRotina)";
        $select .= " WHERE r.situacao_rotina = 'L' and ra.idAmostra = a.idAmostra)";
                
	if($request['sidx'])
	{
            $select .= " ORDER BY " . $request['sidx']  . " " . $request['sord'] . " LIMIT " . $start ." , ". $request['rows'] ;
	}
        else
	{
            $select .=  " LIMIT " . $start ." , ". $request['rows'] ;
	}
	
        $resultado =  $this->_db->fetchAll($select);
	        
	for ($cont = 0; $cont < count($resultado); $cont++)
	{
            $dados['rows'][$cont]['id'] = $resultado[$cont]['amostra'];
            $dados['rows'][$cont]['cell'] = array( $resultado[$cont]['amostra'],
                                                   $resultado[$cont]['inicial'],
                                                   $resultado[$cont]['cliente']
                                                   );
		
	}
			
	return $dados;	
    }
    
    public function add(array $request)
    {
        $dados = array(
                'idAmostra' => $request[0],
                'Inicial'=> $request[1],
                'idCliente'=> $request[2] ,
                'idUsuCad'=> $request[3]
        );
        return $this->insert($dados);
    }
	
    public function del($idAmostra)
    {
        $retorno = true;
        
        $this->_db->beginTransaction();
        try{
            
            $resultado = new Resultado();
            $res= $resultado->delAmostra($idAmostra);
            $rotinaAmostra = new RotinaAmostra();
            $res=$rotinaAmostra->delAmostra($idAmostra);
            $solicitacaoAmostra = new SolicitacaoAmostra();
            $res = $solicitacaoAmostra->delAmostra($idAmostra);
            $where = $this->_db->quoteInto("idAmostra = ?", $idAmostra);
            $this->delete($where);
            $this->_db->commit();
        }
        catch (Zend_Exception $e){
            $this->_db->rollBack();
            $retorno = false;
        }
        
        
        return $retorno;
    }
        
        public function vrfcAmostra($id)
        {
              
            
                $select = $this->select()
                               ->from($this,"count(*) as qt")
                               ->where(" idAmostra = ?", $id);
              
               
                $resultado = $this->fetchRow($select);
                
                if ($resultado->qt > 0){
                    return true;
                }
                else
                {
                    return false;
                }
        }
        
        public function _getAmostra($id)
        {
                $resultado = null;
            
                $select = $this->select()
                               ->from($this)
                               ->where(" idAmostra = ?", $id);
              
                return $this->fetchRow($select);
                
               
               
        }
	 public function vrfcAmostraInicial($id, $inicial)
        {
              
                $select = $this->select()
                               ->from($this,"count(*) as qt")
                               ->where(" idAmostra = ?", $id)
                               ->where(" inicial = ?", strtoupper($inicial));
              
               
                $resultado = $this->fetchRow($select);
                
                if ($resultado->qt > 0){
                    return true;
                }
                else
                {
                    return false;
                }
        }
}